home *** CD-ROM | disk | FTP | other *** search
Text File | 1995-07-28 | 4.0 KB | 155 lines | [TEXT/MPS ] |
- /*
- File: ObjectListTests.cp
-
- Copyright: © 1991-1994 by Apple Computer, Inc.
- All rights reserved.
-
- Part of the AOCE Sample SMSAM Package. Consult the license
- which came with this software for your specific legal rights.
-
- */
-
-
-
- #ifndef __OBJECTLIST__
- #include "ObjectList.h"
- #endif
-
- #ifndef __DEBUGASSERT__
- #include "DebugAssert.h"
- #endif
-
- #pragma segment ObjectListTests
-
- DeclareList(void,TList);
- ImplementList(void,TList,true);
-
- /***********************************|****************************************/
-
- void VoidObjectListTests ()
- {
- void* a = new char ();
- void* b = new short ();
- void* c = new long ();
- void* d = new unsigned char ();
- void* e = new unsigned short ();
-
- TList list;
- ASSERT_RETURN ( list.Count () == 0 );
-
- list.Append ( a );
- ASSERT_RETURN ( list.Count () == 1 );
- ASSERT_RETURN ( list [ 1 ] == a );
- ASSERT_RETURN ( list.Find ( a ) == 1 );
-
- list.Append ( b );
- ASSERT_RETURN ( list.Count () == 2 );
- ASSERT_RETURN ( list [ 1 ] == a );
- ASSERT_RETURN ( list [ 2 ] == b );
- ASSERT_RETURN ( list.Find ( a ) == 1 );
- ASSERT_RETURN ( list.Find ( b ) == 2 );
-
- list.Append ( c );
- ASSERT_RETURN ( list.Count () == 3 );
- ASSERT_RETURN ( list [ 1 ] == a );
- ASSERT_RETURN ( list [ 2 ] == b );
- ASSERT_RETURN ( list [ 3 ] == c );
- ASSERT_RETURN ( list.Find ( a ) == 1 );
- ASSERT_RETURN ( list.Find ( b ) == 2 );
- ASSERT_RETURN ( list.Find ( c ) == 3 );
-
- list.Append ( d );
- ASSERT_RETURN ( list.Count () == 4 );
- ASSERT_RETURN ( list [ 1 ] == a );
- ASSERT_RETURN ( list [ 2 ] == b );
- ASSERT_RETURN ( list [ 3 ] == c );
- ASSERT_RETURN ( list [ 4 ] == d );
- ASSERT_RETURN ( list.Find ( a ) == 1 );
- ASSERT_RETURN ( list.Find ( b ) == 2 );
- ASSERT_RETURN ( list.Find ( c ) == 3 );
- ASSERT_RETURN ( list.Find ( d ) == 4 );
-
- list.Append ( e );
- ASSERT_RETURN ( list.Count () == 5 );
- ASSERT_RETURN ( list [ 1 ] == a );
- ASSERT_RETURN ( list [ 2 ] == b );
- ASSERT_RETURN ( list [ 3 ] == c );
- ASSERT_RETURN ( list [ 4 ] == d );
- ASSERT_RETURN ( list [ 5 ] == e );
- ASSERT_RETURN ( list.Find ( a ) == 1 );
- ASSERT_RETURN ( list.Find ( b ) == 2 );
- ASSERT_RETURN ( list.Find ( c ) == 3 );
- ASSERT_RETURN ( list.Find ( d ) == 4 );
- ASSERT_RETURN ( list.Find ( e ) == 5 );
-
- ASSERT_RETURN ( a == list.Remove ( 1 ) );
- ASSERT_RETURN ( list.Count () == 4 );
- ASSERT_RETURN ( list [ 1 ] == b );
- ASSERT_RETURN ( list [ 2 ] == c );
- ASSERT_RETURN ( list [ 3 ] == d );
- ASSERT_RETURN ( list [ 4 ] == e );
- ASSERT_RETURN ( list.Find ( a ) == 0 );
- ASSERT_RETURN ( list.Find ( b ) == 1 );
- ASSERT_RETURN ( list.Find ( c ) == 2 );
- ASSERT_RETURN ( list.Find ( d ) == 3 );
- ASSERT_RETURN ( list.Find ( e ) == 4 );
-
- ASSERT_RETURN ( list.Remove ( c ) );
- ASSERT_RETURN ( list.Count () == 3 );
- ASSERT_RETURN ( list [ 1 ] == b );
- ASSERT_RETURN ( list [ 2 ] == d );
- ASSERT_RETURN ( list [ 3 ] == e );
- ASSERT_RETURN ( list.Find ( a ) == 0 );
- ASSERT_RETURN ( list.Find ( b ) == 1 );
- ASSERT_RETURN ( list.Find ( c ) == 0 );
- ASSERT_RETURN ( list.Find ( d ) == 2 );
- ASSERT_RETURN ( list.Find ( e ) == 3 );
-
- ASSERT_RETURN ( e == list.Remove ( 3 ) );
- ASSERT_RETURN ( list.Count () == 2 );
- ASSERT_RETURN ( list [ 1 ] == b );
- ASSERT_RETURN ( list [ 2 ] == d );
- ASSERT_RETURN ( list.Find ( a ) == 0 );
- ASSERT_RETURN ( list.Find ( b ) == 1 );
- ASSERT_RETURN ( list.Find ( c ) == 0 );
- ASSERT_RETURN ( list.Find ( d ) == 2 );
- ASSERT_RETURN ( list.Find ( e ) == 0 );
-
- list.RemoveAll ();
- ASSERT_RETURN ( list.Count () == 0 );
-
- delete a;
- delete b;
- delete c;
- delete d;
- delete e;
- }
-
- /***********************************|****************************************/
-
- class TFoo
- {
- public: TFoo () {};
- virtual ~TFoo () {};
- };
-
- DeclareList(TFoo,TFooList);
- ImplementList(TFoo,TFooList,true);
-
- /***********************************|****************************************/
-
- void DirectObjectListTests ()
- {
- TFooList list;
- }
-
- /***********************************|****************************************/
-
- void ObjectListTests ()
- {
- VoidObjectListTests ();
- DirectObjectListTests ();
- }
-
- /***********************************|****************************************/
-